LIB = app

#source dir

CCTINC = ../../../../../../app/PlcMtr
LIBCCTINC = ../../../../../../app/PlcMtr/LibPlcMtr
CTRLINC = ../../../../../../app/Ctrl
DBINC = ../../../../../../app/DataBase
DPINC = ../../../../../../app/DataProc
DISPINC = ../../../../../../app/Display

UCGUICFG = ../../../../../../app/Display/ucgui/source/Config
UCGUIINC = ../../../../../../app/Display/ucgui/source/include
UCGUICORE = ../../../../../../app/Display/ucgui/source/gui/Core
UCGUIFONT = ../../../../../../app/Display/ucgui/source/gui/Font
UCGUIGUI_X = ../../../../../../app/Display/ucgui/source/gui/GUI_X
UCGUILCDDriver = ../../../../../../app/Display/ucgui/source/gui/LCDDriver

DRVAPPINC = ../../../../../../app/Driver
FAINC = ../../../../../../app/fa
MTRINC = ../../../../../../app/Meter
PROINC = ../../../../../../app/Proto
TASKINC = ../../../../../../app/Freeze

COMINC = ../../../../../../common
ACLIBINC = ../../../../../../Lib/LibAc
DBLIBINC = ../../../../../../Lib/LibDb
MTRLIBINC = ../../../../../../Lib/LibMtr
MODEMINC = ../../../../../../Lib/LibGprs
PROTOIFINC = ../../../../../../Lib/ProtoIf
TASKDBINC = ../../../../../../Lib/LibSql

ARCHINC = ../../../../../../arch/linux

DRIVERSINC = ../../../../../../drivers/linux
DRVCOMMINC = ../../../../../../drivers/common

MTRPROINC = ../../../../../../MeterPro


INCS = -I$(CCTINC) -I$(LIBCCTINC) -I$(CTRLINC) -I$(DBINC) -I$(DPINC) -I$(DISPINC) -I$(DRVAPPINC) -I$(FAINC) -I$(MTRINC) -I$(PROINC) -I$(TASKINC) \
	-I$(COMINC) -I$(ACLIBINC) -I$(DBLIBINC) -I$(MTRLIBINC) -I$(MODEMINC) -I$(PROTOIFINC) -I$(TASKDBINC) \
	-I$(ARCHINC) -I$(DRIVERSINC) -I$(DRVCOMMINC) -I$(MTRPROINC) -I$(UCGUICFG) -I$(UCGUIINC) -I$(UCGUICORE) -I$(UCGUIFONT) -I$(UCGUILCDDriver) -I$(UCGUIGUI_X) 

LIBS = -lnsl -lpthread -ldl

##################################################
ROOTDIR = ../../../../../../../Prj/Linux
OBJDIR = $(ROOTDIR)/obj
BINDIR = $(ROOTDIR)/bin
LIBDIR = $(ROOTDIR)/lib


##################################################
SRCDIR = .
SRCS = $(notdir $(wildcard $(SRCDIR)/*.c $(SRCDIR)/*.cpp))
	
#OBJS = $(SRCS:%.=$(OBJDIR)/%.o)
OBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(patsubst %.cpp,$(OBJDIR)/%.o,$(SRCS)))

##################################################


CC       = arm-linux-g++
AR       = arm-linux-ar
CPPFLAGS = -g -c -O2 $(INCS)
#CPPFLAGS += -DLINUX -fno-builtin-log
LDFLAGS  = -L$(LIBDIR) $(LIBS)

#########################################################
$(LIBDIR)/lib$(LIB).a: $(LIBDIR) $(OBJDIR) $(OBJS) 
	$(AR) rv $@ $(OBJS)
	ranlib $@
#$(LIBDIR)/lib$(LIB).so: $(LIBDIR) $(OBJDIR) $(OBJS) 
#	$(CC) -shared -o $@ $(OBJS) $(LDFLAGS)

$(OBJDIR):
	@test -d $@ || mkdir $@
	
$(LIBDIR):
	@test -d $@ || mkdir $@

$(OBJDIR)/%.o: $(SRCDIR)/%.c
	$(CC) $(CPPFLAGS) -o $@ $<
	
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
	$(CC) $(CPPFLAGS) -o $@ $<

clean:
	@rm -r -f $(OBJDIR) $(LIBDIR)/lib$(LIB).a $(SRCDIR)/*~